package com.aceitunaproject.server.science;

import java.util.Map;

import com.aceitunaproject.server.ServerConfiguration;

/**
 *
 * Stores and manages the Scientific Advance subsystem.
 * 
 * @author Federico Bergstein
 *
 */
public class ScientificAdvanceManagerImpl implements ScientificAdvanceManager {
	
	private Map<String, ScientificAdvance> allScientificAdvances;
	private ScientificAdvanceLoader scientificAdvanceLoader;

	/* (non-Javadoc)
	 * @see com.aceitunaproject.server.science.ScientificAdvanceManager#getAllScientificAdvances()
	 */
	public Map<String, ScientificAdvance> getAllScientificAdvances() {
		if(allScientificAdvances == null)
		{
			allScientificAdvances = getScientificAdvanceLoader().getScientificAdvances();
		}
		return allScientificAdvances;
	}

	/* (non-Javadoc)
	 * @see com.aceitunaproject.server.science.ScientificAdvanceManager#setScientificAdvanceLoader(com.aceitunaproject.server.science.ScientificAdvanceLoader)
	 */
	public void setScientificAdvanceLoader(ScientificAdvanceLoader scientificAdvanceLoader) {
		this.scientificAdvanceLoader = scientificAdvanceLoader;
	}

	/* (non-Javadoc)
	 * @see com.aceitunaproject.server.science.ScientificAdvanceManager#getScientificAdvanceLoader()
	 */
	public ScientificAdvanceLoader getScientificAdvanceLoader() {
		if(scientificAdvanceLoader == null)
		{
			scientificAdvanceLoader = ServerConfiguration.getScientificAdvanceLoader();
		}
		return scientificAdvanceLoader;
	}
	


}
